<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>State</title>
  </head>
  <body>
    <!-- 准备好一个容器 -->
    <div id="root"></div>

    <!-- 引入react核心库 -->
    <script type="text/javascript" src="../js/react.development.js"></script>
    <!-- 引入react-dom 用于支持react操作dom -->
    <script
      type="text/javascript"
      src="../js/react-dom.development.js"
    ></script>
    <!-- 引入babel 将js转换成jsx -->
    <script type="text/javascript" src="../js/babel.min.js"></script>

    <!-- type="text/babel" 表示写的是 jsx 使用babel 翻译 -->
    <script type="text/babel">
        // 1. 创建类式组件
        class Weather extends React.Component{
            constructor(props){
                super(props)
                this.state = {
                    isHot: true
                }
                this.changeWeather = this.changeWeather.bind(this)
            }
            render(){
                const {isHot} = this.state;
                return <h1 onClick={this.changeWeather}>今天天气很{isHot?'炎热':'凉爽'}</h1>;
            }

           changeWeather() {
               //changeWeather放在哪里？一Weather的原型对象上，供实例使用
               //由于changeWeather,是作为onclick的回调，所以不是通过实例调用的，是直接调用
               //类中的方法默认开启了局部的严格模式，所以changeWeather中的this为undefined
               // state 中的值不可以直接更改 需要使用内置的Api 下面就是错误写法
               // this.state.isHot = !this.state.isHot
               // 必须通过setState()修改
                this.setState({isHot:!this.state.isHot});
           }
        }

        // 2. 渲染元素到页面
        ReactDOM.render(<Weather/>,document.getElementById("root"));

    </script>
  </body>
</html>
